package com.atcumt.Thread.singleton;

/**
 * 静态内部类
 * 静态内部类实现了懒加载，当Singleton加载时并不立即实例化 INSTANCE。
 * 而是在调用 getInstance() 方法才会 加载 SingletonHolder类从而完成 Singleton 的实例化
 */
public class Singleton3 {

    // 私有化构造方法
    private Singleton3() {}

    // 静态内部类
    private static class SingletonHolder {
        // 声明外部类型的静态常量
        private static final Singleton3 INSTANCE = new Singleton3();
    }

    // 对外提供的唯一获取实例的方法
    public static Singleton3 getInstance() {
        return SingletonHolder.INSTANCE;
    }
}
